import axios from 'axios'
import { Message } from 'element-ui'
// import { getToken, getTokenTime } from '@/utils/auth'
// import store from '@/store'
// import router from '@/router'
// const timeout = 2 * 60 * 60 * 1000

// 创建一个axios的实例对象,具备axios的功能,其他实例互不干扰
// 放基准地址
const request = axios.create({
  // baseURL: 'http://liufusong.top:8899/'
  baseURL: process.env.VUE_APP_BASE_API
})
// 添加请求拦截器
request.interceptors.request.use(function(config) {
  // console.log(config)
  // 在发送请求之前做些什么
  // if (getToken()) {
  //   // ======================token失效的主动处理:前端不经过后端请求,直接处理token失效的问题==========================
  //   const TokenTime = getTokenTime() // 存token时的时间戳
  //   // console.log('存token时的时间戳', TokenTime)
  //   const currentTime = Date.now() // 当前的时间戳
  //   // console.log('当前的时间戳', currentTime)
  //   if (currentTime - TokenTime > timeout) {
  //     store.dispatch('user/logout') // 删除本地token
  //     router.push('/login') // 跳转登录页
  //     return Promise.reject(new Error('token过期'))// return Promise的reject方法,new一个错误提示Error,响应拦截器会接受到这个错误提示
  //   }
  //   // ======================token失效的主动处理==========================
  // }
  return config
}, function(error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})

// 添加响应拦截器
request.interceptors.response.use(function(response) {
  // 响应成功
  console.log('响应拦截器的reponse', response)

  // const { data: { meta: { msg, status }, data: { token }}} = response
  // console.log(response.data.data)
  // console.log(response.data.data.token)
  if (response.data.meta.status === 200) {
    Message.success('登录成功')
    return response.data.data// 把整个data拦截下来
  } else if (response.data.meta.status === 400) {
    Message.error(response.data.meta.msg)
    return Promise.reject(new Error())
  }
}, function(error) {
  // 响应失败
  console.log(error)
  // =======================Token失效的被动处理:根据后端返回的信息401处理token失效====================
  // if (error.response && error.response.status === 401) {
  // // 如果error里面有response,且response的status等于401才...[判断三层,首先要确定有第2层,再去判断第三层]
  //   store.dispatch('user/logout') // 删除本地token
  //   router.push('/login') // 跳转登录页
  //   Message.error('token过期,请重新登录')
  //   return Promise.reject(error) // 中断promise
  // }
  // =======================Token失效的被动处理====================

  // if (error.message === 'token过期') {
  //   Message.error('token过期,请重新登录')
  // } else {
  //   Message.error('错了')
  // }
  Message.error('错了')

  return Promise.reject(error)
})

export default request
